草庐IT

SQL 按多列分组

全部标签

sql - 获取 MS SQL 中特定 varchar 的行数

在MSSQLServer2012中,我有一个数据库,其中包含一个包含varchar列的表,该列包含一些甚至可能包含换行符的文本。基本示例:CREATETABLEExample([ID]INT,[Text]VARCHAR(100));INSERTINTOExample([ID],[Text])VALUES(1,'Thisisatest'),(2,'Thisisanothertestwithtwolinebreaks'),(3,'Thisisatestwithonelinebreak');现在我想获取每条记录的总文本行数,即,如下所示:--------------------|ID|Lin

sql-server - 在 SQL Server 中检索没有子元素的元素

我正在使用SQLServer2008,我想检索XML元素并返回元素本身及其属性,不带任何子元素和text()。例如,以下XML有4个节点(doc、apple、b、banana):tastyyum!niceinsmoothies我想返回:例如doc应返回时不带任何子节点,apple应返回时不带b子节点。但问题是,如果我使用SQLServer节点和查询方法,我无法删除子节点。使用SQLServer2008最接近的是:declare@xxml='tastyyum!niceinsmoothies';selectc.query('local-name(.)')asNode,c.query('fo

c# - 读取 XML 数据并构建查询以将值插入 SQL Server 数据库的最佳方法是什么?

读取XML数据并构建查询以将值插入SQLServer数据库的最佳方法是什么?谁有针对这种情况的最佳方法? 最佳答案 就我个人而言,我使用DataSet.ReadXML()。然后它将所有数据放入DataSet中的DataTables中,然后循环遍历和操作数据就容易多了。 关于c#-读取XML数据并构建查询以将值插入SQLServer数据库的最佳方法是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com

sql - 如何确定两个大型数据集之间的差异?

我有largedatasets有数百万条XML格式的记录。这些数据集是数据库在某个时间点之前的完整数据转储。在两个转储之间可能添加了新条目,而现有条目可能已被修改或删除。假设架构保持不变,并且每个条目都有一个唯一的ID。确定其中两个数据集(包括删除和更新)之间的增量的最佳方法是什么?我的计划是将所有内容加载到RDBMS并从那里开始。首先,加载旧的转储。然后,将较新的转储加载到不同的模式中,但这样做时我将检查该条目是新的还是对现有条目的更新。如果是,我会将ID记录到名为“changes”的新表中。完成这一切后,我将遍历所有条目的旧转储,看看它们是否在新转储上有匹配的记录(即:相同的ID)

c# - 如何按多个值对 XML 数据进行分组

我需要对XML中的“文档”值进行分组。问题是因为键值(productType)可以是多个。这是XML:1title1CapitalCostsAnalysisForum-BrazilEnvironmental,HealthandSafety&Sustainability2title2CapitalCostsAnalysisForum-Brazil3title3Environmental,HealthandSafety&Sustainability4title4Defense,Risk&Security这就是我的尝试:vardocuments=fromdocumen

c# - SQL Server 2008 错误 - XML 分析 : document parsing required too much memory

在XML解析器崩溃之前,我们在SQLServer2008中遇到了单个XML节点可以拥有的最大属性数的问题。我们收到的错误是:Msg6303,Level16,State1,Line1XMLparsing:Documentparsingrequiredtoomuchmemory这有点误导。将字符串转换为XML数据类型(或表列)时出现问题。SELECTCONVERT(XML,'')其中XXXXX其实是另外8191个属性。我们的数据集总共包含10,066个属性。当我们将属性数量减少到8,192时,效果很好。然而,8,193个属性崩溃。它似乎与数据大小没有任何具体关系(100MB或60KB无关紧

xml - 按 XSL 中的 2 个字段分组

我有下一个xml:1001USD01.01.2009101001USD02.01.2009151001JPY01.01.200951002USD01.01.20095...我需要将其转换为html。记录应按id和cur分组。并在每组之后显示总金额。所以我们想要这样的东西:Bill:id=1001,cur=USDdate=01.01.2009amount=10date=02.01.2009amount=15totalamount=25Bill:id=1001,cur=JPYdate=01.01.2009amount=5totalamount=5Bill:id=1002,cur=USDda

.net - 使用 LINQ 分组

这个问题在这里已经有了答案:LINQtoXMLinVB.NET(4个答案)关闭2年前。我正忙于将一个简单的SQL查询转换为一个LINQ查询(顺便说一句,使用vb)这是我的SQL:SELECTUSRDEFND5FROMint_gp_employeeGROUPBYUSRDEFND5xml看起来像这样:....SomeGUID我已经尝试了LINQ的多种不同变体。我目前的声明是:FrombInxmlFile...Groupb...Byb...INTOgroup当我遍历生成的集合时,每一行(17000)都会显示出来。感谢您的关注。

sql-server - 是否可以在 SQL Server 2005/SQL Server 2008 的 XML 列中设置索引?

我有一个应用程序将xml文档存储在SQLServer的一个列中。XML文档的结构类似于下面的结构:...0123456789.......9876543210.......基本上这一列存储了一组客户信息。XML文档在元素中可以有不同的子元素,但是其中一些子元素包含在所有文档中(例如上例中的元素)。这样我就可以在表中有一行包含以下值CarlosLoth0123456789AlbertoTomatis987654321另一行包含此文档XYZ0123456789ABC987654321那么,我的问题是是否可以基于document/item/phoneNumber元素在该XML列上创建索引?我

sql-server - 如何将存储过程返回的 XML 放入变量中?

我有返回XML的存储过程。XML不是作为参数而是作为SELECT的结果返回的:createprocedure#xml_testasselect1asaforxmlrawgo我试图将此XML放入一个变量中:declare@xmlasnvarchar(max)但是我找不到怎么做。我最好的想法是INSERTINTO...EXEC,但我收到错误消息“INSERT语句中不允许使用FORXML子句。”:createtable#tmp(col1nvarchar(max)notnull)insertinto#tmpexec#xml_test这种方法适用于普通文本:createprocedure#tex